上一篇文講了一些網路上的基本概念及名詞,大家應該對網路有了一些基本的了解,今天就來說一些常見的協定
TCP、UDP都是傳輸層的協定,TCP較注重可靠性和數據完整性,會在傳輸過程中進行錯誤檢測和數據重傳。UDP更注重於低延遲和高效傳輸,所以不會保證數據的可靠性和順序。
1.確保數據完整且按正確順序傳輸。它通過數據確認機制來檢查每個封包是否到達,如果發現丟失或損壞,會重傳數據。
2.使用「三次握手」來建立連接,保證雙方準備好後才開始數據傳輸。
3.可控制數據傳輸速度,根據網絡情況進行調整,防止數據擁塞。
4.適用於需要高可靠性和完整性的應用,例如:網頁瀏覽(HTTP/HTTPS)電子郵件傳輸(SMTP)
1.UDP 不會建立連接,也不會進行數據確認,數據一旦發出,就不會追蹤是否到達。這使得它的傳輸過程更快。
2.UDP 不會重傳丟失的數據,也不會保證數據的順序。如果封包在傳輸過程中丟失,接收端不會收到完整的數據。
3.因為沒有額外的控制和確認機制,UDP 的數據傳輸延遲非常低,適合即時性需求高的應用。
4.適用於即時傳輸和流媒體等不需要高可靠性的應用,例如:視訊、語音通話、遊戲...
特性 | TCP(傳輸控制協定) | UDP(使用者數據包協定) |
---|---|---|
是否面向連接 | 面向連接,需要建立連接 | 無連接,直接傳輸數據 |
傳輸可靠性 | 高,數據完整且按順序 | 低,不保證數據順序或完整 |
數據重傳 | 支援,丟包後會重傳數據 | 不支援,丟包後不重傳 |
數據確認 | 有確認應答,確保數據送達 | 無確認應答,無法確認是否送達 |
傳輸速度 | 相對較慢,由於有確認和重傳 | 快速,無須確認和重傳 |
擁塞控制與流量控制 | 支援,會調整數據傳輸速度 | 無擁塞和流量控制 |
應用場景 | 需要高可靠性的應用,如網頁、郵件 | 需要實時性或低延遲的應用,如語音、遊戲 |
TCP:利用「三次握手」進行「SYN Flood」等攻擊,造成伺服器資源耗盡。
UDP:利用「UDP Flood」等拒絕服務攻擊(DoS),淹沒目標伺服器的網絡。
HTTP是應用層的協定,用於在客戶端和伺服器之間傳輸超文本數據,如HTML頁面、圖片、影片等。
HTTP的運作模型,原理是客戶端向伺服器發送一個Request,伺服器處理請求並返回一個Response。
HTTP是無狀態協議,這意味著伺服器不會記住先前的請求狀態。每次請求和回應都是獨立的,不會保存之前的交互數據。這可以提升效率,但如果需要保持連續的會話(例如登錄狀態),需要借助Cookie、Session、Token等技術。
1.攔截未加密的HTTP通信,竊取密碼、Cookie等敏感資訊。
2.注入惡意腳本,利用HTTP通信將惡意程式注入到受害者的瀏覽器中。(XSS)
3.利用用戶已經登錄的狀態,通過惡意請求偽造用戶行為,操作用戶帳號或竊取數據。(CSRF)
HTTPS 即為 HTTP 的加密版本,使用 SSL/TLS 協議來加密網絡通信,保護數據在傳輸過程中的私密性和完整性。
客戶端請求一個 HTTPS 網站時,伺服器會傳送一個 SSL/TLS 證書,該證書包含伺服器的公鑰。客戶端使用這個公鑰加密數據,並將其傳送給伺服器。伺服器使用自己的私鑰解密這些數據。
1.能有效防止MITM,因為攻擊者無法竊取或篡改加密的通信內容。
2.使用 HTTPS 的網站通常會被搜索引擎優先排列,並且使用者會更信任使用 HTTPS 的網站。
1.嘗試利用 HTTPS 設置中的漏洞(如過期證書或錯誤配置的SSL/TLS),或者進行惡意重定向到使用假證書的網站。
2.滲透測試中,可以嘗試通過社交工程或其他手段來繞過 HTTPS 保護,或者嘗試解密通信